home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_029 / RDXFS_R1.LZH / archive.lzh / pc_xfs / mgx_xfs.inc < prev    next >
Text File  |  1996-03-03  |  11KB  |  304 lines

  1. ; mgx_xfs.inc
  2. ;
  3. ; Autor:
  4. ; Andreas Kromke
  5. ;
  6. ; Diese Datei entspricht fast vollständig dem Original aus der
  7. ; Doku, wurde aber um die fehlenden Offsets (mxk_DMD_rdevinit und
  8. ; mxk_proc_info) ergänzt.
  9.  
  10.      OFFSET
  11.  
  12. mxk_version:        DS.W      1
  13. mxk_fast_clrmem:    DS.L      1
  14. mxk_toupper:        DS.L      1
  15. mxk__sprintf:       DS.L      1
  16. mxk_act_pd:         DS.L      1
  17. mxk_act_appl:       DS.L      1
  18. mxk_keyb_app:       DS.L      1
  19. mxk_pe_slice:       DS.L      1
  20. mxk_pe_timer:       DS.L      1
  21. mxk_appl_yield:     DS.L      1
  22. mxk_appl_suspend:   DS.L      1
  23. mxk_appl_begcritic: DS.L      1
  24. mxk_appl_endcritic: DS.L      1
  25. mxk_evnt_IO:        DS.L      1
  26. mxk_evnt_mIO:       DS.L      1
  27. mxk_evnt_emIO:      DS.L      1
  28. mxk_appl_IOcomplete:DS.L      1
  29. mxk_evnt_sem:       DS.L      1
  30. mxk_Pfree:          DS.L      1
  31. mxk_int_msize:      DS.W      1
  32. mxk_int_malloc:     DS.L      1
  33. mxk_int_mfree:      DS.L      1
  34. mxk_resv_intmem:    DS.L      1
  35. mxk_diskchange:     DS.L      1
  36. mxk_DMD_rdevinit:   DS.L      1
  37. mxk_proc_info:      DS.L      1
  38.  
  39.      OFFSET
  40.  
  41. dev_close:     DS.L      1
  42. dev_read:      DS.L      1
  43. dev_write:     DS.L      1
  44. dev_stat:      DS.L      1
  45. dev_seek:      DS.L      1
  46. dev_datime:    DS.L      1
  47. dev_ioctl:     DS.L      1
  48. dev_getc:      DS.L      1
  49. dev_getline:   DS.L      1
  50. dev_putc:      DS.L      1
  51.  
  52.      OFFSET
  53.  
  54. dd_dmd:        DS.L      1    /* 0x00: Zeiger auf DMD                      */
  55. dd_refcnt:     DS.W      1    /* 0x04: Ref.zähler für Standardpfade        */
  56.  
  57.      OFFSET
  58.  
  59. fd_dmd:        DS.L      1    /* 0x00: Zeiger auf DMD                      */
  60. fd_refcnt:     DS.W      1    /* 0x04: Ref.zähler fürs Schließen oder -1   */
  61. fd_mode:       DS.W      1    /* 0x06: Open- Modus (0,1,2) und flags       */
  62. fd_dev:        DS.L      1    /* 0x08: Zeiger auf MX_DEV                   */
  63.  
  64.      OFFSET
  65.  
  66. dhd_dmd:       DS.L      1    /* 0x00: Zeiger auf DMD                      */
  67.  
  68.      OFFSET
  69.  
  70. dta_res1:      DS.B      20
  71. dta_drive:     DS.B      1    /* 0x14: */
  72. dta_res2:      DS.B      1    /* 0x15: */
  73. dta_time:      DS.W      1    /* 0x16: gefundene Zeit                      */
  74. dta_date:      DS.W      1    /* 0x18: gefundenes Datum                    */
  75. dta_len:       DS.L      1    /* 0x1a: gefundene Länge                     */
  76. dta_name:      DS.B      14   /* 0x1e: gefundener Dateiname                */
  77.  
  78.      OFFSET
  79.  
  80. d_xfs:         DS.L      1    /* 0x00: Der Dateisystemtreiber              */
  81. d_drive:       DS.W      1    /* 0x04: Laufwerknummer 0..31                */
  82. d_root:        DS.L      1    /* 0x06: Zeiger auf FD der Root              */
  83. d_biosdev:     DS.W      1    /* 0x0a: BIOS-Laufwerk oder -1               */
  84. d_driver:      DS.L      1    /* 0x0c: def. zus. mit devcode das Medium    */
  85. d_devcode:     DS.L      1    /* 0x10: z.B. SCSI Target & Laufwerk         */
  86.  
  87.      OFFSET
  88.  
  89. xattr_mode:    DS.W      1    /* %ttttsssrwxrwxrwx                         */
  90.                               /* Bit 12,13,14,15: Dateityp                 */
  91.                               /*         2: BIOS special file              */
  92.                               /*         4: Directory file                 */
  93.                               /*         8: regular file                   */
  94.                               /*        10: fifo                           */
  95.                               /*        12: memory region or process       */
  96.                               /*        14: symbolic link                  */
  97.                               /* Bit 9,10,11: special bits                 */
  98.                               /*         1: sticky bit (?)                 */
  99.                               /*         2: setgid (?)                     */
  100.                               /*         4: setuid (?)                     */
  101.                               /* Bit 0..8: access modes                    */
  102.                               /*         rwx für user/group/world          */
  103. xattr_index:   DS.L      1
  104. xattr_dev:     DS.W      1
  105. xattr_res1:    DS.W      1
  106. xattr_nlink:   DS.W      1
  107. xattr_uid:     DS.W      1
  108. xattr_gid:     DS.W      1
  109. xattr_size:    DS.L      1
  110. xattr_blksize: DS.L      1
  111. xattr_nblocks: DS.L      1
  112. xattr_mtime:   DS.W      1
  113. xattr_mdate:   DS.W      1
  114. xattr_atime:   DS.W      1
  115. xattr_adate:   DS.W      1
  116. xattr_ctime:   DS.W      1
  117. xattr_cdate:   DS.W      1
  118. xattr_attr:    DS.W      1
  119. xattr_res2:    DS.W      1
  120. xattr_res3:    DS.L      2
  121. xattr_sizeof:
  122.  
  123.      OFFSET
  124.  
  125. xfs_name:      DS.B      8
  126. xfs_next:      DS.L      1
  127. xfs_flags:     DS.L      1
  128. xfs_init:      DS.L      1
  129. xfs_sync:      DS.L      1
  130. xfs_pterm:     DS.L      1
  131. xfs_garbcoll:  DS.L      1
  132. xfs_freeDD:    DS.L      1
  133. xfs_drv_open:  DS.L      1
  134. xfs_drv_close: DS.L      1
  135. xfs_path2DD:   DS.L      1
  136. xfs_sfirst:    DS.L      1
  137. xfs_snext:     DS.L      1
  138. xfs_fopen:     DS.L      1
  139. xfs_fdelete:   DS.L      1
  140. xfs_link:      DS.L      1
  141. xfs_xattr:     DS.L      1
  142. xfs_attrib:    DS.L      1
  143. xfs_chown:     DS.L      1
  144. xfs_chmod:     DS.L      1
  145. xfs_dcreate:   DS.L      1
  146. xfs_ddelete:   DS.L      1
  147. xfs_DD2name:   DS.L      1
  148. xfs_dopendir:  DS.L      1
  149. xfs_dreaddir:  DS.L      1
  150. xfs_drewinddir: DS.L     1
  151. xfs_dclosedir: DS.L      1
  152. xfs_dpathconf: DS.L      1
  153. xfs_dfree:     DS.L      1
  154. xfs_wlabel:    DS.L      1
  155. xfs_rlabel:    DS.L      1
  156. xfs_symlink:   DS.L      1
  157. xfs_readlink:  DS.L      1
  158. xfs_dcntl:     DS.L      1
  159.  
  160.      OFFSET
  161.  
  162. p_lowtpa:      DS.L      1    /* 0x00: Beginn TPA, des BP selbst           */
  163. p_hitpa:       DS.L      1    /* 0x04: zeigt 1 Byte hinter TPA             */
  164. p_tbase:       DS.L      1    /* 0x08: Beginn des TEXT - Segments          */
  165. p_tlen:        DS.L      1    /* 0x0c: Länge  des TEXT - Segments          */
  166. p_dbase:       DS.L      1    /* 0x10: Beginn des DATA - Segments          */
  167. p_dlen:        DS.L      1    /* 0x14: Länge  des DATA - Segments          */
  168. p_bbase:       DS.L      1    /* 0x18: Beginn des BSS  - Segments          */
  169. p_blen:        DS.L      1    /* 0x1c: Länge  des BSS  - Segments          */
  170. p_dta:         DS.L      1    /* 0x20: Aktueller DTA- Puffer               */
  171. p_parent:      DS.L      1    /* 0x24: Zeiger auf BP des Parent            */
  172. p_procid:      DS.W      1
  173. p_res1:        DS.W      1
  174. p_env:         DS.L      1    /* 0x2c: Zeiger auf Environment              */
  175. p_devx:        DS.B      6
  176. p_res2:        DS.B      1
  177. p_defdrv:      DS.B      1    /* 0x37: Default- Laufwerk                   */
  178. p_res3:        DS.B      8
  179. p_drvx:        DS.B     32
  180. p_res4:        DS.B    $08
  181. p_mem:         DS.L      1
  182. p_context:     DS.L      1
  183. p_mflags:      DS.L      1
  184. p_mres3:       DS.L      1
  185. p_mres4:       DS.L      1
  186. p_reg:         DS.L      1
  187. p_cmdlin:      DS.B    128    /* 0x80: Kommandozeile                       */
  188.  
  189.      TEXT
  190.  
  191. /* Standardhandles */
  192.  
  193. STDIN               EQU  0
  194. STDOUT              EQU  1
  195. STDAUX              EQU  2
  196. STDPRN              EQU  3
  197. STDHDL4             EQU  4
  198. STDHDL5             EQU  5
  199.  
  200. /* Schreib-/Lesemodi für Fgetchar und Fputchar */
  201.  
  202. CMODE_RAW           EQU  0
  203. CMODE_COOKED        EQU  1
  204. BCMODE_COOKED       EQU  0
  205. CMODE_ECHO          EQU  2
  206. BCMODE_ECHO         EQU  1
  207.  
  208. /* Open- Modus von Dateien (Mag!X- intern)                                 */
  209. /* NOINHERIT wird nicht unterstützt, weil nach TOS- Konvention nur die     */
  210. /* Handles 0..5 vererbt werden                                             */
  211. /* HiByte wie unter MiNT verwendet                                         */
  212.  
  213. OM_RPERM       EQU  1         /* Datei ist zum Lesen geöffnet              */
  214. BOM_RPERM      EQU  0
  215. OM_WPERM       EQU  2         /* Datei ist zum Schreiben geöffnet          */
  216. BOM_WPERM      EQU  1
  217. OM_EXEC        EQU  4         /* Datei ist zum Ausführen geöffnet          */
  218. BOM_EXEC       EQU  2
  219. OM_APPEND      EQU  8         /* Schreibzugriffe ans Ende (Kernel!)        */
  220. BOM_APPEND     EQU  3
  221. OM_RDENY       EQU  16        /* andere dürfen nicht gleichz. lesen        */
  222. BOM_RDENY      EQU  4
  223. OM_WDENY       EQU  32        /* andere dürfen nicht gleichz. schreiben    */
  224. BOM_WDENY      EQU  5
  225. OM_NOCHECK     EQU  64        /* KEINE Überprüfung durch den Kernel        */
  226. BOM_NOCHECK    EQU  6
  227.  
  228.  
  229. /* Open- Modus von Dateien (MiNT) */
  230. O_RWMODE       EQU  3         /* Maske für r/w- Modi */
  231. O_RDONLY       EQU  0
  232. O_WRONLY       EQU  1
  233. O_RDWR         EQU  2
  234. O_EXEC         EQU  3
  235.  
  236. O_APPEND       EQU  8         /* Schreiben geht immer ans Dateiende   */
  237. BO_APPEND      EQU  3
  238.  
  239. O_SHMODE       EQU  $70
  240. O_COMPAT       EQU  0
  241. O_DENYRW       EQU  $10
  242. O_DENYW        EQU  $20
  243. O_DENYR        EQU  $30
  244. O_DENYNONE     EQU  $40
  245.  
  246. O_NOINHERIT    EQU  $80       ; von Mag!X nicht unterstützt
  247. O_NDELAY       EQU  $100      ; von Mag!X nicht unterstützt
  248. O_CREAT        EQU  $200
  249. BO_CREAT       EQU  9
  250. O_TRUNC        EQU  $400
  251. BO_TRUNC       EQU  10
  252. O_EXCL         EQU  $800
  253. BO_EXCL        EQU  11
  254. O_TTY          EQU  $2000     ; von Mag!X nicht unterstützt
  255. O_HEAD         EQU  $4000     ; von Mag!X nicht unterstützt
  256. O_LOCK         EQU  $8000     ; von Mag!X nicht unterstützt
  257.  
  258. ; unterstützte Dcntl- Modi (Mag!X- spezifisch!)
  259. KER_GETINFO    EQU  $0100     /* Kernel: gib Zeiger auf Kernel zurück    */
  260. KER_DOSLIMITS  EQU  $0101     /* Kernel: Limits für FAT-Dateisysteme */
  261. KER_INSTXFS    EQU  $0200     /* Kernel: installiere ein XFS */
  262. KER_SETWBACK   EQU  $0300     /* Kernel: konfiguriere writeback */
  263. DFS_GETINFO    EQU  $1100     /* XFS_DOS: gib Zeiger auf DFS-Kernel */
  264. DFS_INSTDFS    EQU  $1200     /* XFS_DOS: installiere ein DFS */
  265. DEV_M_INSTALL  EQU  $cd00     /* DFS_U */
  266.  
  267. ; unterstützte Fcntl- Modi
  268. FSTAT          EQU  $4600
  269. FIONREAD       EQU  $4601
  270. FIONWRITE      EQU  $4602
  271. FUTIME         EQU  $4603
  272. FTRUNCATE      EQU  $4604
  273. SHMGETBLK      EQU  $4d00
  274. SHMSETBLK      EQU  $4d01
  275. PBASEADDR      EQU  $5002
  276.  
  277. LASTDRIVE      EQU  'Z'-'A'   ; höchste Laufwerknummer
  278.  
  279. /* Modi und Codes für Dpathconf() */
  280.  
  281. DP_MAXREQ      EQU  -1
  282. DP_IOPEN       EQU  0
  283. DP_MAXLINKS    EQU  1
  284. DP_PATHMAX     EQU  2
  285. DP_NAMEMAX     EQU  3
  286. DP_ATOMIC      EQU  4
  287. DP_TRUNC       EQU  5
  288.  DP_NOTRUNC    EQU  0
  289.  DP_AUTOTRUNC  EQU  1
  290.  DP_DOSTRUNC   EQU  2
  291. DP_CASE        EQU  6
  292.  DP_CASESENS   EQU  0
  293.  DP_CASECONV   EQU  1
  294.  DP_CASEINSENS EQU  2
  295.  
  296. /* Für Psemaphore, die Modi 0/1 werden z.Zt. nicht unterstützt */
  297.  
  298. PSEM_CRGET     EQU  0    /* create and get */
  299. PSEM_DESTROY   EQU  1
  300. PSEM_GET       EQU  2
  301. PSEM_RELEASE   EQU  3
  302.  
  303. ; EOF
  304.